export enum BandwidthLevel {
  Off = 'off',
  Micro = 'micro',
  Mini = 'mini',
  Low = 'low',
  Medium = 'medium',
  High = 'high',
  Turbo = 'turbo',
  Ultra = 'ultra',
  Extreme = 'extreme'
}

export interface BandwidthStatus {
  level: BandwidthLevel
  is_running: boolean
  bytes_consumed: number
  duration_seconds: number
  current_speed_mbps: number
}

export interface RealtimeData {
  timestamp: number
  speed_mbps: number
  speed_mb_per_sec: number
  bytes_consumed: number
  peak_speed: number
  avg_speed: number
  duration_seconds: number
  active_connections: number
}

export interface SystemInfo {
  ip_address: string
  network_type: string
  connection_status: string
  cpu_usage: number
  memory_usage: number
  network_interface: string
}

export interface NetworkStats {
  peak_speed: number
  average_speed: number
  efficiency: number
  run_count: number
  avg_session_time: number
  weekly_run_time: number
  weekly_data_usage: number
}

export interface BandwidthLevelInfo {
  name: string
  description: string
  speed_mbps: number
  color: string
}

export interface AppState {
  isConnected: boolean
  status: BandwidthStatus | null
  levels: BandwidthLevel[]
  levelInfos: Record<BandwidthLevel, BandwidthLevelInfo>
} 